<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>Promise</h1>


    <script>
    const p1 = new Promise(function (resolve, reject) {
        // ...
        setTimeout(()=>{
            console.log('p1完成');
            resolve('成功了！')
        },2000)
    });

    const p2 = new Promise(function (resolve, reject) {
        // ...
        console.log('我是p2里的p1',p1);
        resolve(p1);
    })
    console.log("我是p1",p1);
    console.log("我是p2",p2);

setTimeout(()=>{
    console.log("我是p2",p2);
},2000);
        // p1和p2都是 Promise 的实例，但是p2的resolve方法将p1作为参数，
        // 即一个异步操作的结果是返回另一个异步操作。
        // 注：p2的异步操作结果，返回的是p1

        //这时p1的状态就会传递给p2，也就是说，p1的状态决定了p2的状态。
        //如果p1的状态是pending，那么p2的回调函数就会等待p1的状态改变；
        //如果p1的状态已经是resolved或者rejected，那么p2的回调函数将会立刻执行。

        // p2的回调方法的参数 就是p1回调方法
    </script>
</body>
</html>